// const app = getApp('usr_home')

// 获取本机手机号start
function get_phone_number(e, page_name = '', from_page = '', app) {
	// app.add_visit_record(page_name + '_get_phone'); // add visit record

	if (e.detail.errMsg == 'getPhoneNumber:ok') {
		wx.checkSession({
			success: function () {
				//这里进行请求服务端解密手机号
				deciyption(e.detail.encryptedData, e.detail.iv, page_name, from_page);
			},
			fail: function () {
				// console.log('fial');
				wx.showToast({
					title: "请重启小程序",
					icon: "error",
					duration: 4000
				})
			}
		})
	} else if (e.detail.errMsg == 'getPhoneNumber:fail Error: 该 appid 没有权限') {
		wx.showModal({
			title: '提示',
			content: e.detail.errMsg + '，',
			success(res) {
				wx.reLaunch({
					url: '/pages/index/index?from=usr_home_no_permission',
				})
			}
		})
	} else if (e.detail.errMsg === 'getPhoneNumber:fail:access denied') {
		wx.showToast({
			title: 'fail:access denied',
			icon: 'none',
			duration: 4000
		})
	} else if (e.detail.errMsg === 'getPhoneNumber:fail 用户未绑定手机，请先在微信客户端进行绑定后重试') {
		wx.showToast({
			title: '微信未绑定手机号',
			icon: 'none',
			duration: 4000
		})
	}
}
//获取本机手机号end

// 解码手机号
function deciyption(encryptedData, iv, page_name, from_page) {
	var that = this;
	// console.log("步骤4根据秘钥解密手机号码sessionID：",sessionID, encryptedData, iv);
	wx.request({
		url: 'https://x.quhuichang.cn/api/dec_phone/',
		data: {
			openid: wx.getStorageSync("usr_wx_openid"),
			encryptedData: encryptedData,
			iv: iv,
			signstr: 'dream_ren_3016',
			usr_sign: wx.getStorageSync("usr_sign")
		},
		header: {
			'content-type': 'application/json'
		},
		success: function (res) {
			if (res.statusCode == 200) {
				// console.log(res.data)
				// 连接远程接口成功，但验证接口失败，判断errCode==2001：重新获取用户信息，另外 errCode > 0 （为1001）时提示：手机号已被占用
				if (res.data.errCode == 2001) {
					wx.showModal({
						title: res.data.errMsg,
						content: '请重新加载后，再点击：登录',
						success(res) {
							if (res.confirm) {
								goto_page(page_name, from_page)
								return false
							} else if (res.cancel) {
								// wx.exitMiniProgram() // console.log('用户点击取消')
							}
						}
					})
					return false;
				}
				// errCode > 0 （为1001）时提示错误（手机号已被占用）
				if (res.data.errCode > 0) {
					wx.showToast({
						title: res.data.errMsg,
						icon: "error",
						duration: 4000
					})
					return false;
				}
				// console.log(res.data)
				if (res.data.phoneNumber) {
					wx.setStorageSync('usr_wx_phone', res.data.phoneNumber);
					// console.log("解码成功");
					wx.showToast({
						title: res.data.errMsg, //手机号验证成功
						icon: 'none',
						duration: 3000
					})
					// ===小程序公共js里面 修改page 页面data的数据 start
					let pages = getCurrentPages(); // 当前页面栈
					let currentPagePage = pages[pages.length - 1]; // 当前页面
					currentPagePage.setData({
						[`usr_arr_info.usr_phone`]: res.data.phoneNumber,
						show_phone_btn: false, // usr_home页面，false不显示按钮 显示手机号，true显示按钮 不显示手机号
					})
					// ===小程序公共js里面 修改page 页面data的数据 end
					// 更新 存储中的手机号 start
					if (wx.getStorageSync('usr_all_info')) {
						var get_all_info = wx.getStorageSync('usr_all_info')
						get_all_info.usr_phone = res.data.phoneNumber
						wx.setStorageSync('usr_all_info', get_all_info);
					}
					// 更新 存储中的手机号 end
				} else {
					// console.log('解码失败');
					wx.showToast({
						title: "登录失败",
						icon: 'error',
						duration: 4000
					})
				}
			} else {
				wx.showToast({
					title: "连接api失败",
					icon: 'error',
					duration: 4000
				})
				// console.log(res.errMsg)
			}
		},
		fail: function (res) {
			wx.showToast({
				title: "连接接口失败",
				icon: 'error',
				duration: 4000
			})
			//console.log("fail",res);
		}
	})
}

// 转到app_jump_openid 页面重新获取用户信息
function goto_page(page_name = '', from_page = '') {
	if (page_name) {
		var gotourl = '/pages/app_jump_openid/app_jump_openid?page_name=' + page_name + '?from=' + from_page + '&goto=get_phone_number'
	} else {
		var gotourl = '/pages/app_jump_openid/app_jump_openid?from=' + from_page + '&goto=get_phone_number'
	}
	wx.reLaunch({
		url: gotourl
	})
	return false
}


// 将下面的变量暴露出来
// 只有暴露出来的变量外部才能引用
// model.exports一般是放在ts文件的最后面， 以防止变量未定义时， 就向外面暴露
module.exports = {
	//变量名   ： 将方法赋值到变量上面去使用
	get_phone_number: get_phone_number,
}

// var utils = require('../../../../utils/addCache');      
// utils.mySetStorage('widget-classSchedule', 'dailySchedule', this.data.classInfo)